package simulator;

/**
 *
 * @author ibranovic
 */
/**
 * The Neighborhood class represents the set of neighboring nodes of a given
 * node. This class is radio model specific and must be derived in the
 * specific radio model.
 */
public interface Neighborhood {

    /**
     * This method must call the {@link Node#receptionBegin} method of
     * each of the neighboring nodes.
     * 
     * @param strength The diminished radio strength of the received signal
     * @param stream The object represented the data stream.
     */
    void beginTransmission(double strength, Object stream);

    /**
     * It must guarantee that each {@link Node#receptionBegin} call is
     * matched with a {@link Node#receptionEnd} call with the exact same
     * parameters.
     */
    void endTransmission();

}
